//********************************************************************************************************
// Product Name: MapWindow.dll Alpha
// Description:  The basic module for MapWindow version 6.0
//********************************************************************************************************
// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); 
// you may not use this file except in compliance with the License. You may obtain a copy of the License at 
// http://www.mozilla.org/MPL/ 
//
// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF 
// ANY KIND, either expressed or implied. See the License for the specificlanguage governing rights and 
// limitations under the License. 
//
// The Original Code is from MapWindow.dll version 6.0
//
// The Initial Developer of this Original Code is Ted Dunsford. Created 3/8/2008 9:23:48 AM
// 
// Contributor(s): (Open source contributors should list themselves and their modifications here). 
//
//********************************************************************************************************

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Text;

using MapWindow;
using MapWindow.Main;
using MapWindow.Data;
using MapWindow.Drawing;
using MapWindow.Geometries;

using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;


namespace MapWindow.DirectX
{


    /// <summary>
    /// ITextureLayer
    /// </summary>
    public interface ITileLayerDX: ILayerDX, IRenderableDX
    {
       
        /// <summary>
        /// Opens the texture layer, but doesn't automatically draw it.  Rather it simply creates the texture so that it can be used
        /// by another framework.
        /// </summary>
        /// <param name="device">The Microsoft.DirectX.Direct3D.Device to draw to</param>
        /// <param name="camera"></param>
        void Open(Device device, Camera camera);
      

        /// <summary>
        /// This causes this textureLayer to open a data file and load the texture, but does not render the texture.
        /// This should be called before draping this texture on a different frame.
        /// </summary>
        /// <param name="device">A Microsoft.DirectX.Direct3D.Device</param>
        /// <param name="camera"></param>
        /// <param name="progressHandler">progress handler</param>
        void Open(Device device, Camera camera, IProgressHandler progressHandler);

      
       

        /// <summary>
        /// This is necessary if the frame is supposed to move.  It will force it to be regenerated during a draw.
        /// </summary>
        void ResetMesh();

       



    

    }
}
